home *** CD-ROM | disk | FTP | other *** search
- /*
- * a header of the class KBAN_DATA
- * Copyright (C) 1996, 1997 Kazutaka Hirata <khirata@jove.acs.unt.edu>
- */
-
- #ifndef _KBANDATA_H_
- #define _KBANDATA_H_
-
- #include "prim.h"
- #include "complist.h"
- #include "../common/flag.h"
- #include "../finfo.h"
-
- class KBAN_DATA {
- PRIMITIVE m_primitive;
- COMPONENT_LIST m_component_list;
- public:
- KBAN_DATA(void)
- : m_primitive() {}
- KBAN_DATA(const KBAN_DATA& src)
- : m_primitive (src.m_primitive ),
- m_component_list(src.m_component_list) {}
-
- void operator=(const KBAN_DATA& src);
-
- PRIMITIVE& primitive(void) { return m_primitive; }
- const PRIMITIVE& primitive(void) const { return m_primitive; }
-
- COMPONENT_LIST& component_list(void) { return m_component_list; }
- const COMPONENT_LIST& component_list(void) const { return m_component_list; }
-
- void clear(void);
-
- XY get_max(void) const;
- XY get_min(void) const;
-
- void shift(const XY& ac_dif, KBAN_DATA& target) const;
-
- void unselect(void);
- void select_items_in_block(const XY& ac1, const XY& ac2);
- void collect_selected_items(KBAN_DATA& dst) const;
- void remove_selected_items(void);
- private:
- int load_170(FILE_NEW& fp);
- uint load_get_version(FILE_NEW& fp) const;
- int load_200a8 (FILE_NEW& fp);
- int load_200b18(FILE_NEW& fp);
- public:
- int load(FILE_NEW& fp);
- int save(FILE_NEW& fp) const;
- void collect_aperture(APT_TABLE& apt_pin_table, APT_TABLE& apt_line_table) const;
-
- void operator+=(const KBAN_DATA& target);
- bool empty() const;
- void rotate_90();
- void limit_drill_size(uint drill);
- };
-
- class ACTIVE_LAYER {
- uint m_no;
- FLAG m_pin_on_common;
- public:
- ACTIVE_LAYER(uint no) {
- m_no = no;
- m_pin_on_common.set(false);
- }
- uint get(void) const { return m_no; }
- void set(uint no) { m_no = no; }
- FLAG& pin_on_common() { return m_pin_on_common; }
- const FLAG& pin_on_common() const { return m_pin_on_common; }
-
- uint get_pin_layer(void) const {
- return pin_on_common().get() ? LAYER_PATTERN_COMMON : get();
- }
- };
-
- #endif /* _KBANDATA_H_ */
-